Skip to content

dmaengine: dw-axi-dmac: report per-channel max_burst via device_caps#7011

Merged
pelwell merged 1 commit intoraspberrypi:rpi-6.12.yfrom
nbuchwitz:devel/fix-axi-dmac
Aug 22, 2025
Merged

dmaengine: dw-axi-dmac: report per-channel max_burst via device_caps#7011
pelwell merged 1 commit intoraspberrypi:rpi-6.12.yfrom
nbuchwitz:devel/fix-axi-dmac

Conversation

@nbuchwitz
Copy link
Copy Markdown
Contributor

@nbuchwitz nbuchwitz commented Aug 21, 2025

The patch "dmaengine: dw-axi-dmac: add per-channel AXI burst length support" programs ARLEN/AWLEN from the snps,axi-max-burst-len array but still exposed a single max_burst value via dma_get_slave_caps(). As a result all channels reported 8 even when limited to 4, leading to warnings:

dma dma2chan5: requested source burst length 8 exceeds supported 4

Add a .device_caps callback to return the correct per-channel max_burst. This allows drivers like amba-pl011 to clamp burst lengths properly.

Fixes: 0e4e6a0c4f4e ("dmaengine: dw-axi-dmac: add per-channel AXI burst length support") #6994

@nbuchwitz
Copy link
Copy Markdown
Contributor Author

To be discussed: Keep dw->dma.max_burst = hdata->axi_rw_burst_len[0]; which set the default burst length to 8 or better use min on hdata->axi_rw_burst_len?

@pelwell
Copy link
Copy Markdown
Contributor

pelwell commented Aug 22, 2025

Apart from the checkpatch indentation complaints, this looks good.

To be discussed: Keep dw->dma.max_burst = hdata->axi_rw_burst_len[0]; which set the default burst length to 8 or better use min on hdata->axi_rw_burst_len?

Don't we drop the assignment completely now we have the device_caps method?

@nbuchwitz
Copy link
Copy Markdown
Contributor Author

Don't we drop the assignment completely now we have the device_caps method?

Probably can do, yes. The array should be populated for all channels, so the fallback isn't really needed. I will amend my commit when I take care of checkpatch.

The patch "dmaengine: dw-axi-dmac: add per-channel AXI burst length
support" programs ARLEN/AWLEN from the snps,axi-max-burst-len array but
still exposed a single max_burst value via dma_get_slave_caps(). As a
result all channels reported 8 even when limited to 4, leading to
warnings:

  dma dma2chan5: requested source burst length 8 exceeds supported 4

Add a .device_caps callback to return the correct per-channel max_burst.
This allows drivers like amba-pl011 to clamp burst lengths properly.

Fixes: 0e4e6a0c4f4e ("dmaengine: dw-axi-dmac: add per-channel AXI burst length support")
Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
@pelwell pelwell merged commit 5cd8ecc into raspberrypi:rpi-6.12.y Aug 22, 2025
12 checks passed
@pelwell
Copy link
Copy Markdown
Contributor

pelwell commented Aug 22, 2025

Thanks!

popcornmix added a commit to raspberrypi/firmware that referenced this pull request Aug 26, 2025
kernel: dmaengine: dw-axi-dmac: report per-channel max_burst via device_caps
See: raspberrypi/linux#7011

kernel: Update tpm-slb9673-overlay.dts
See: raspberrypi/linux#6993

kernel: Enable Full Screen Splash Images
See: raspberrypi/linux#7005

kernel: overlays: Rebuild 5inch display from the 7inch
See: raspberrypi/linux#7016
popcornmix added a commit to raspberrypi/rpi-firmware that referenced this pull request Aug 26, 2025
kernel: dmaengine: dw-axi-dmac: report per-channel max_burst via device_caps
See: raspberrypi/linux#7011

kernel: Update tpm-slb9673-overlay.dts
See: raspberrypi/linux#6993

kernel: Enable Full Screen Splash Images
See: raspberrypi/linux#7005

kernel: overlays: Rebuild 5inch display from the 7inch
See: raspberrypi/linux#7016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants